#  lelabirynthedeminos
#   DE  BERTRAND  CLERGEOT
#  --- EXEMPLE zXbASIC ---
#        ET ZXTEXT2P
#  
#
#     MIS EN MEMOIRE PAR
#           XAVSNAP
#  
#
# PROBLEMES:
#
# .LIGNE nO 9505 EN TROP.
# .LIGNES 7030 ET 7040 EN DOUBLON
# SUR LE LISTING.
#
# ordi NUMERO 5 PAGE 32/33
#
#          -=OoO=-
#

1 PAUSE 500
3 RAND
4 POKE 16418,0
5 CLS
6 LET T=3
7 LET TR=3
8 LET F=0
9 LET A$="LE LABYRINTHE DE MINOS"

10 PRINT""

12 FOR N=1 TO 20 
14 PRINT AT N,0;".............................."
15 NEXT N
16 PRINT""
17 PRINT""
18 PRINT"ordiversiondexAVsNAP"
19 PRINT AT 10,1;".........."
20 PRINT AT 11,1;"..........."
21 PRINT AT 12,1;"........."
24 PRINT AT 5,13;".."\
        ;AT 6,13;".."\
        ;AT 7,13;"."


26 PRINT AT 16,6;"......."
27 PRINT AT 17,6;"........"
28 PRINT AT 18,6;"......."
34 PRINT AT 0,5;"copyright"
35 PRINT AT 1,5;"clergeotbertrand"
44 IF INKEY$="" THEN GOTO 40
45 GOSUB 200
50 CLS
70 LET CO=0
80 LET S=400
90 LET A=0
100 GOTO 7000

#REGLE DU JEU

200 CLS
205 PRINT AT 0,4;"LE LABIRYNTHE DE MINOS          ======================"

210 PRINT AT 3,0;"-1. VOUS ETES PRISONNIER DE","MINOS,ET VOUS CHERCHEZ A SORTIR DU LABIRYNTHE."
220 PRINT ,,"-2. VOUS RENCONTREZ PARFOIS LE","MINOTAURE LA MONSTRUEUSE","CREATURE DE MINOS.VOUS COMBATTEZOU VOUS FUYEZ,VOS CHANCES","ETANT DONNEES."
230 PRINT ,,"-3. VOUS PARTEZ AVEC 400 POINTS AVEC LA POSSIBLILITE DE VOUS    ENRICHIR AU COUR DE VOS COMBATS OU DE VOS DECOUVERTES."
240 PRINT ,,"-4. VOUS POUVEZ CONNAITRE VOTRE POSITION SUR LE PLAN EN TAPANT  LA LETTRE p.(-40 POINTS)"
250 PRINT ,,"TOUCHES: dROITE  gAUCHE  rETOUR",TAB 3;"aVANCE OU CURSEUR -...-"
260 IF INKEY$="" THEN GOTO 260
400 RETURN

#ROUTINE D EFFACEMENT

500 PRINT AT 8,0;"                   "
510 PRINT AT 9,0;"                   "
520 PRINT AT 7,0;"                   "
530 PRINT AT 10,0;"                   "
540 PRINT AT 6,0;"                   "
550 PRINT AT 11,0;"                   "
560 PRINT AT 5,0;"                   "
570 PRINT AT 12,0;"                   "
580 PRINT AT 4,0;"                   "
590 PRINT AT 13,0;"                   "
600 PRINT AT 3,0;"                   "
610 PRINT AT 14,0;"                   "
620 PRINT AT 2,0;"                   "
630 PRINT AT 15,0;"                   "
640 PRINT AT 1,0;"                   "
650 PRINT AT 16,0;"                   "
670 FOR N=17 TO 21
680 PRINT AT N,0;"                   "
690 NEXT N
700 RETURN

1000 PRINT AT 5,6;"  ";\
           AT 6,6;"   ";\
           AT 7,6;"    ";\
          AT 8,6; "";\
           AT 9,6;"SORTIE";\
           AT10,6;"";\
          AT 11,6;"  ";\
          AT 12,6;" ";
1010 PRINT AT 20,2;"vousetessorti";AT 21,2;"bravo"
1020 IF INKEY$="" THEN GOTO 1020
1030 RUN 3

#MAUVAISE RENCONTRE

2000 PRINT AT 19,0;"   *LE MINOTAURE*",,
2002 PRINT AT 20,0;"VOS CHANCES:";CO;"/100"
2003 PRINT AT 21,0;"    cOMBAT/fUITE "
2004 LET TR=3
2005 PRINT AT 8,3;  ""\
          ;AT 9,4;  ""\
          ;AT 10,4;  "-- "

2006 PRINT AT 11,4;" "\
          ;AT 12,4; ""\
          ;AT 13,2; ""

2007 PRINT AT 14,2;""\
           ;AT 15,2;""

2020 IF INKEY$="C" THEN GOTO 3000
2030 IF INKEY$="F" THEN GOTO 8400
2100 GOTO 2020

3000 LET CR=INT(RND*95)+1
3005 FOR M=1 TO 30
3006 PRINT AT 21,0;"  ***COMBAT***    "
3007 PRINT AT 21,0;"  combat    "
3008 NEXT M
3009 PRINT AT 21,0;"                  "

3010 IF CR>CO THEN GOTO 3110
3011 PRINT AT 21,0;"  gagne   "
3012 LET CO=0
3015 LET S=S+100
3018 PRINT AT 0,0;"SCORE:";S
3019 GOSUB 9600
3020 PRINT AT 19,0;"                   " 
3025 PRINT AT 20,0;"                   "
3100 RETURN3110 PRINT AT 19,0;"tuepar"
3115 PRINT "leminotaure"
3116 PRINT AT 21,0;"                  "
3118 PRINT AT 0,0;"SCORE:000  "
3119 GOSUB 4200
3120 IF INKEY$="" THEN GOTO 3120
3130 RUN 3

#TROU

4000 PRINT AT 14,3;"";AT 15,2;"------";AT 16,1;"-------";AT 17,0;"---------";AT 18,0;""
4001 PRINT AT 2**3+6,3;"";AT 15,2;"";AT 16,1;"";AT 17,0;"";AT 18,0;""
4045 LET W=INT(RND*50)+1
4050 PRINT AT 20,0;"untroupenalite";W
4051 LET S=S-W
4052 IF INKEY$="" THEN GOTO 4052
4055 LET T=3
4060 LET CO=0
4065 LET TR=3
4070 LET S=S-30
4080 RETURN

#TRESOR
4100 PRINT AT 19,2;"tresor"
4102 LET TR=3
4105 PRINT AT 17,5;""\
          ;AT 16,5;""\
          ;AT 15,5;"i"\
          ;AT 14,5;""
4110 LET W=INT(RND*100)+1
4120 PRINT AT 20,0;"POUR OUVRIR -";W;" ?"
4122 PRINT AT 21,0;" OUVRIR:oUI/nON"
4125 LET X=INT(RND*100)+1
4130 IF INKEY$="O" THEN GOTO 4150
4140 IF INKEY$="N" THEN GOTO 4180
4145 GOTO 4130
4150 PRINT AT 2**3+7,5;"."\
          ;AT 2**3+6,5;"";AT 13,5;""\
          ;AT 2**3+5,5;"::";AT 12,5;""\
          ;AT 2**3+4,5;""

4151 LET S=S-W
4152 PRINT AT 20,0;"                  "
4154 PRINT AT 19,0;"                  "
4155 PRINT AT 21,1;"voustrouvez ";X
4160 LET S=S+X
4165 GOSUB 9600
4166 PRINT AT 19,0;"                   "
4167 PRINT AT 20,0;"                   "
4170 RETURN

4180 PRINT AT 19,0;"                   "
4190 PRINT AT 20,0;"ilyavait ";X;" "
4195 PRINT AT 21,0;"                  "
4196 RETURN

4200 GOSUB 9600
4210 PRINT AT 12,3; ""\
          ;AT 13,2;""\
          ;AT 14,2;"O="\
          ;AT 15,2;"o"\
          ;AT 16,3;""\
          ;AT 17,3;"";TAB 12;"x"\
          ;AT 18,3;" ";TAB 12;""
4550 RETURN

4600 PRINT AT 20,0;"vousetesmort"
4605 PRINT AT 21,0;"defaim"
4610 PRINT AT 0,0;"SCORE=000  "
4611 GOSUB 4200

4612 IF INKEY$<>"" THEN GOTO 4612

4620 IF INKEY$="" THEN GOTO 4620
4630 RUN 3

5030 PRINT "                "
5040 PRINT "              "
5050 PRINT "            "
5060 PRINT "          "
5070 PRINT "        "
5080 PRINT "       "
5090 PRINT "   "
5100 PRINT " "
5110 PRINT ""
5120 PRINT ""
5130 PRINT "-"
5140 PRINT "---"
5150 PRINT "       "
5160 PRINT "--------"
5170 PRINT "          "
5180 PRINT "------------"
5190 PRINT "              "
5200 PRINT "----------------"
5210 RETURN

5230 PRINT "                "
5240 PRINT "              "
5250 PRINT "            "
5260 PRINT "          "
5270 PRINT "        "
5280 PRINT "       "
5290 PRINT "   "
5300 PRINT " "
5310 PRINT ""
5320 PRINT ""
5330 PRINT "-"
5340 PRINT "---"
5350 PRINT "       "
5360 PRINT "--------"
5370 PRINT "          "
5380 PRINT "------------"
5385 PRINT "              "
5390 PRINT "----------------"
5395 RETURN

5430 PRINT "                "
5440 PRINT "              "
5450 PRINT "            "
5460 PRINT "          "
5470 PRINT "        "
5480 PRINT "        "
5490 PRINT "  "
5500 PRINT ""
5510 PRINT ""
5520 PRINT ""
5530 PRINT "--"
5540 PRINT "----"
5550 PRINT "        "
5560 PRINT "--------"
5570 PRINT "          "
5580 PRINT "------------"
5585 PRINT "              "
5590 PRINT "----------------"
5595 RETURN

5600 PRINT "                "
5610 PRINT "              "
5620 PRINT "            "
5630 PRINT "          "
5640 PRINT "        "
5650 PRINT "      "
5660 PRINT "    "
5670 PRINT "  "
5680 PRINT ""
5690 PRINT ""
5700 PRINT "--"
5710 PRINT "----"
5720 PRINT "      "
5730 PRINT "--------"
5740 PRINT "          "
5750 PRINT "------------"
5760 PRINT "              "
5770 PRINT "----------------"
5775 IF A=56 THEN GOTO 1000
5780 RETURN

5800 PRINT "                "
5810 PRINT "              "
5820 PRINT "            "
5830 PRINT "          "
5840 PRINT "        "
5850 PRINT "      "
5860 PRINT ""
5870 PRINT ""
5880 PRINT ""
5890 PRINT "<>"
5900 PRINT ""
5910 PRINT ""
5920 PRINT "      "
5930 PRINT "--------"
5940 PRINT "          "
5950 PRINT "------------"
5960 PRINT "              "
5970 PRINT "----------------"
5980 RETURN

6000 PRINT "                "
6010 PRINT "              "
6020 PRINT "            "
6030 PRINT "          "
6040 PRINT "        "
6050 PRINT "       "
6060 PRINT ""
6070 PRINT ""
6080 PRINT ""
6090 PRINT "=>"
6100 PRINT ""
6110 PRINT ""
6120 PRINT "       "
6130 PRINT "--------"
6140 PRINT "          "
6150 PRINT "------------"
6160 PRINT "              "
6170 PRINT "----------------"
6180 RETURN

6200 PRINT "                "
6210 PRINT "              "
6220 PRINT "            "
6230 PRINT "          "
6240 PRINT "        "
6250 PRINT "       "
6260 PRINT ""
6270 PRINT ""
6280 PRINT ""
6290 PRINT "<="
6300 PRINT ""
6310 PRINT ""
6320 PRINT "       "
6330 PRINT "--------"
6340 PRINT "          "
6350 PRINT "------------"
6360 PRINT "              "
6370 PRINT "----------------"
6380 RETURN
6400 PRINT "                "
6410 PRINT "              "
6420 PRINT "            "
6430 PRINT "          "
6440 PRINT "        "
6450 PRINT "ii"
6460 PRINT "ii"
6470 PRINT "ii"
6480 PRINT "ii"
6490 PRINT "ii"
6500 PRINT "ii"
6510 PRINT "ii"
6520 PRINT "ii"
6530 PRINT "--------"
6540 PRINT "          "
6550 PRINT "------------"
6560 PRINT "              "
6570 PRINT "----------------"
6580 RETURN

7000 LET P=PEEK 16396+PEEK 16397*256+26
7005 PRINT ,,TAB 19;" "
7010 PRINT   TAB 19;"         "
7020 PRINT   TAB 19;"       "
7030 PRINT   TAB 19;"     "
7040 PRINT   TAB 19;"         "
7050 PRINT   TAB 19;"    "
7060 PRINT   TAB 19;"         "
7070 PRINT   TAB 19;"    "
7080 PRINT   TAB 19;"       "
7090 PRINT   TAB 19;"     "
7100 PRINT   TAB 19;"         "
7110 PRINT   TAB 19;"   "
7120 PRINT   TAB 19;"         "
7130 PRINT   TAB 19;"       "
7135 PRINT   TAB 19;"     "
7140 PRINT   TAB 19;"         "
7150 PRINT   TAB 19;"     "
7160 PRINT   TAB 19;"       "
7170 PRINT   TAB 19;"         "
7180 PRINT   TAB 19;" "
7182 PRINT AT 22,19;""
7185 POKE P,CODE"S"
7190 PRINT AT 0,0
7200 GOSUB 5600
7210 LET P=PEEK 16396+PEEK 16397*256+33*20+25+1
7212 LET Z=P
7220 POKE (P+34),42
7225 LET D=-33
7230 PRINT AT 0,0;"SCORE=";S;"  "
7231 IF T=0 THEN GOSUB 4000
7232 IF CO<>0 THEN GOSUB 2000
7234 IF TR=0 THEN GOSUB 4100
7235 IF S<=0 THEN GOTO 4600
7236 IF INKEY$="" THEN GOTO 7236
7237 IF INKEY$="P" THEN POKE P,CODE"o"
7238 IF PEEK P=CODE"o" THEN LET S=S-40
7240 IF (INKEY$="A" OR INKEY$="7") AND (PEEK(P+D)=0 OR PEEK(P+D)=56) THEN GOTO 8000
7250 IF INKEY$="R" OR INKEY$="6" THEN GOTO 8400
7260 IF INKEY$="G" OR INKEY$="5" THEN GOTO 8500
7270 IF INKEY$="D" OR INKEY$="8" THEN GOTO 8600
7275 POKE P,0
7280 GOTO 7230

# AVANT.

8000 LET P=P+D
8150 GOSUB 9500
8175 GOSUB 9600
8300 GOTO 7230

# ARRIERE.

8400 LET D=-D
8410 LET P=P+D
8420 GOSUB 9500
8430 GOSUB 9600
8435 IF PEEK P=CODE"S" THEN GOTO 1000
8450 GOTO 7230


# GAUCHE.

8500 LET D1=D
8505 IF D=-33 THEN LET D=-1
8507 IF D1-D<>0 THEN GOTO 8540
8510 IF D=33 THEN LET D=1
8512 IF D1-D<>0 THEN GOTO 8540
8520 IF D=1 THEN LET D=-33
8522 IF D1-D<>0 THEN GOTO 8540
8530 IF D=-1 THEN LET D=33
8540 IF PEEK(P+D)=128 THEN LET D=D1
8542 IF D=D1 THEN GOTO 7230
8545 LET P=P+D
8550 GOSUB 9500
8560 GOSUB 9600
8570 GOTO 7230

# DROITE.

8600 LET D1=D
8605 IF D=-33 THEN LET D=1
8607 IF D1-D<>0 THEN GOTO 8640
8610 IF D=33 THEN LET D=-1
8612 IF D1-D<>0 THEN GOTO 8640
8620 IF D=1 THEN LET D=33
8622 IF D1-D<>0 THEN GOTO 8640
8630 IF D=-1 THEN LET D=-33
8640 IF PEEK(P+D)=128 THEN LET D=D1
8642 IF D=D1 THEN GOTO 7230
8645 LET P=P+D
8650 GOSUB 9500
8660 GOSUB 9600
8665 IF PEEK P=CODE"S" THEN GOTO 1000
8670 GOTO 7230

9500 LET A=PEEK(P+D)
9501 PRINT AT 0,0
9502 GOSUB 500
#9506 NEXT N
9507 PRINT AT 0,0
9508 LET S=S-10
9510 IF D=-33 OR D=1 THEN LET B=PEEK(P-(ABS D)+34)
9512 IF D=-33 OR D=1 THEN LET C=PEEK(P+(ABS D)-34)
9520 IF D=33 OR D=-1 THEN LET C=PEEK(P-(ABS D)+34)
9522 IF D=33 OR D=-1 THEN LET B=PEEK(P+(ABS D)-34)
9525 LET H=INT(RND*5)
9526 IF H=0 THEN LET CO=INT(RND*100)+1
9528 IF H<>0 THEN LET CO=0
9529 LET T=INT(RND*7)
9530 RAND
9532 LET TR=INT(RND*6)
9535 IF A=0 AND INT(RND*4)=0 AND F=0 THEN LET F=4
9536 IF F=4 THEN POKE P+D,128
9538 IF F=4 THEN LET Z=P+D
9539 IF F<>0 THEN LET F=F-1
9540 IF F=3 THEN LET A=128
9541 IF F=0 THEN POKE Z,0
9550 RETURN

#AFFICHAGE LABIRYNTHE

9600 PRINT AT 0,0
9605 IF A=0 AND C=128 AND B=0 THEN GOSUB 5230
9610 IF A=0 AND C=0 AND B=0 THEN GOSUB 5430
9620 IF A=0 AND C=0 AND B=128 THEN GOSUB 5000
9630 IF A=128 AND C=0 AND B=0 THEN GOSUB 5800
9640 IF A=128 AND C=128 AND B=0 THEN GOSUB 6000
9650 IF A=128 AND C=128 AND B=128 THEN GOSUB 6400
9660 IF (A=0 OR A=CODE"S") AND C=128 AND B=128 THEN GOSUB 5600
9670 IF A=128 AND C=0 AND B=128 THEN GOSUB 6200
9990 RETURN

9995 SAVE"MINOTAURe"
9996 GOTO 1






